<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let module = (function () {
            //定义个对象来存储模块
            const moduleList = {};
            // 使用define定义模块
            // name:模块名称 modules：要依赖的模块 actions：模块的方法
            function define(name, modules, action) {
                // 模块依赖
                modules.map((m, i) => {
                    // moduleList[m]就是需要依赖的模块
                    modules[i] = moduleList[m];
                    // console.log(modules[i])
                })
                moduleList[name] = action.apply(null, modules); // 讲模块加到moduleList中
            }
            return { define }
        })();
        // 定义一个zh模块
        module.define('zh', [], function () {
            return {
                first(arr) {
                    return arr[0]
                },
                max(arr,key) {
                    return arr.sort((a,b)=>b[key]-a[key])[0]
                }
            }
        });
        
        // 定义一个lesson模块 并依赖zh模块
        module.define('lesson', ['zh'], function (zh) {
            let data = [
                { name: 'js', price: 99 },
                { name: 'css', price: 33 },
                { name: 'node', price: 189 }
            ]
            // console.log(zh)
            console.log(zh.max(data,'price'));
        })
    </script>
</body>

</html>